//package org.jeecg.modules.iot.middleware.kafka.consumer;
//
//import com.influxdb.client.*;
//import com.influxdb.client.domain.Query;
//import com.influxdb.client.domain.WritePrecision;
//import com.influxdb.client.write.Point;
//import com.influxdb.query.FluxRecord;
//import com.influxdb.query.FluxTable;
//import java.time.Instant;
//import java.util.List;
//import java.util.Random;
//
//public class InfluxdbTest {
//
//    public static void main(String[] args) {
//        // 1.  InfluxDB 配置 (根据你的实际情况修改)
//        String url = "http://localhost:8086";
//        String token = "SYFKIjV6nNqEL7F1gtbfUTecalmT34hAvDSps1RCYGXU7Pc5e27X-komJAFCIMnA0hfv5ibbGkL2d9ZiuX887Q=="; // 替换为你的 InfluxDB token
//        String org = "wz_influxdb";    // 替换为你的 InfluxDB organization
//        String bucket = "test"; // 替换为你的 InfluxDB bucket
//
//        InfluxDBClientOptions options = new InfluxDBClientOptions.Builder()
//                .url(url)
//                .authenticateToken(token.toCharArray())
//                .org(org)
//                .build();
//
//        InfluxDBClient influxDBClient = InfluxDBClientFactory.create(options);
//
//        try {
//
//            // 2. 检查连接
//            System.out.println("InfluxDB Ping Status: " + influxDBClient.ping());
//
//            // 3. 获取 WriteAPI
//            WriteApi writeApi = influxDBClient.makeWriteApi(WriteOptions.builder().batchSize(5000).flushInterval(2000).jitterInterval(200).build());
//
//            // 4.  构造数据点 (使用 Point 类)
//            Random random = new Random();
//
//            for(int i=0;i<10;i++){
//                Point point = Point.measurement("solana")
//                        .addTag("account", "solana"+random.nextDouble() * 300)
//                        .addField("market", random.nextDouble() * 300)
//                        .time(Instant.now(), WritePrecision.NS);
//
//                // 5. 写入数据点
//                writeApi.writePoint(bucket, org, point);
//            }
//
//            System.out.println("Data points written successfully.");
//
//
//            // 6.  关闭 WriteAPI (重要!) 确保所有数据都已写入
//            writeApi.close();
//
//
//            // 7. 获取 QueryAPI
//            QueryApi queryApi = influxDBClient.getQueryApi();
//
//
//            // 8. 构造Flux 查询语句
//            String flux = String.format("from(bucket:\"%s\") |> range(start: -1h) ",bucket);
//
//
//            // 9. 执行Flux 查询
//            List<FluxTable> tables = queryApi.query(flux, org);
//
//
//            // 10. 处理查询结果
//            for(FluxTable table : tables){
//                List<FluxRecord> records = table.getRecords();
//                for(FluxRecord record: records){
//                    System.out.println("Location: " + record.getValueByKey("location") + ", Temperature: " + record.getValueByKey("_value") + ", lon: " + record.getValueByKey("lon") + ", Time: " + record.getTime());
//
//                    System.out.println(record.getValues()); //打印所有字段的key-value
//                }
//            }
//
//
//            System.out.println("Data read and printed successfully.");
//
//
//        } catch (Exception e) {
//            System.err.println("Error writing or reading data from InfluxDB: " + e.getMessage());
//            e.printStackTrace();
//        } finally {
//            // 11. 关闭 InfluxDBClient 连接 (重要!)
//            if (influxDBClient != null) {
//                influxDBClient.close();
//            }
//        }
//    }
//}